home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet multimedia / Muzyka / Edytory sampli (probek dzwieku) / ZynAddSubFX_2.2.0 / Setup_ZynAddSubFX-2.2.0.exe / source code / Params / SUBnoteParameters.h < prev   
C/C++ Source or Header  |  2005-03-14  |  3KB  |  106 lines

  1. /*
  2.   ZynAddSubFX - a software synthesizer
  3.  
  4.   SUBnoteParameters.h - Parameters for SUBnote (SUBsynth)  
  5.   Copyright (C) 2002-2005 Nasca Octavian Paul
  6.   Author: Nasca Octavian Paul
  7.  
  8.   This program is free software; you can redistribute it and/or modify
  9.   it under the terms of version 2 of the GNU General Public License 
  10.   as published by the Free Software Foundation.
  11.  
  12.   This program is distributed in the hope that it will be useful,
  13.   but WITHOUT ANY WARRANTY; without even the implied warranty of
  14.   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15.   GNU General Public License (version 2) for more details.
  16.  
  17.   You should have received a copy of the GNU General Public License (version 2)
  18.   along with this program; if not, write to the Free Software Foundation,
  19.   Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
  20.  
  21. */
  22.  
  23. #ifndef SUB_NOTE_PARAMETERS_H
  24. #define SUB_NOTE_PARAMETERS_H
  25.  
  26. #include "../globals.h"
  27. #include "../Misc/XMLwrapper.h"
  28. #include "EnvelopeParams.h"
  29. #include "FilterParams.h"
  30. #include "Presets.h"
  31.  
  32. class SUBnoteParameters:public Presets{
  33.     public:
  34.     SUBnoteParameters();
  35.     ~SUBnoteParameters();
  36.  
  37.     void add2XML(XMLwrapper *xml);
  38.     void defaults();
  39.     void getfromXML(XMLwrapper *xml);
  40.     
  41.     //Parameters
  42.     //AMPLITUDE PARAMETRERS
  43.     unsigned char Pstereo;//0 for mono,1 for stereo
  44.     unsigned char PVolume;
  45.     unsigned char PPanning;
  46.     unsigned char PAmpVelocityScaleFunction;
  47.     EnvelopeParams *AmpEnvelope;
  48.  
  49.     //Frequency Parameters
  50.         unsigned short int PDetune;
  51.         unsigned short int PCoarseDetune;
  52.         unsigned char PDetuneType;
  53.     unsigned char PFreqEnvelopeEnabled;
  54.     EnvelopeParams *FreqEnvelope;
  55.     unsigned char PBandWidthEnvelopeEnabled;
  56.     EnvelopeParams *BandWidthEnvelope;
  57.     
  58.     //Filter Parameters (Global)
  59.     unsigned char PGlobalFilterEnabled;
  60.     FilterParams *GlobalFilter;
  61.     unsigned char PGlobalFilterVelocityScale; 
  62.     unsigned char PGlobalFilterVelocityScaleFunction;
  63.     EnvelopeParams *GlobalFilterEnvelope;
  64.     
  65.     
  66.         //Other Parameters
  67.     
  68.     //If the base frequency is fixed to 440 Hz
  69.     unsigned char Pfixedfreq;
  70.  
  71.     /* Equal temperate (this is used only if the Pfixedfreq is enabled)
  72.        If this parameter is 0, the frequency is fixed (to 440 Hz);
  73.        if this parameter is 64, 1 MIDI halftone -> 1 frequency halftone */
  74.     unsigned char PfixedfreqET;
  75.  
  76.         
  77.     //how many times the filters are applied        
  78.     unsigned char Pnumstages;
  79.  
  80.     //bandwidth
  81.         unsigned char Pbandwidth;
  82.  
  83.     //How the magnitudes are computed (0=linear,1=-60dB,2=-60dB)
  84.     unsigned char Phmagtype;
  85.     
  86.     //Magnitudes
  87.     unsigned char Phmag[MAX_SUB_HARMONICS];
  88.     
  89.     //Relative BandWidth ("64"=1.0)    
  90.     unsigned char Phrelbw[MAX_SUB_HARMONICS];
  91.  
  92.     //how much the bandwidth is increased according to lower/higher frequency; 64-default
  93.     unsigned char Pbwscale;
  94.  
  95.     //how the harmonics start("0"=0,"1"=random,"2"=1)
  96.     unsigned char Pstart;
  97.     
  98.     
  99.     private:
  100. };
  101.  
  102. #endif
  103.  
  104.  
  105.  
  106.